.. :validated: 3.0.0

.. _domain-exit:

Вывод компьютера из домена
==============================================================================

Вывод компьютера из домена предполагает приведение его операционной системы в исходное состояние и удаление всех записей о хосте из каталога. Это может потребоваться, например, в случаях когда:

* администратор допустил опечатку в названии имени хоста;
* оборудование устарело и нужно его вывести из эксплуатации.

Действия на р/с под управлением Astra Linux Special Edition
------------------------------------------------------------------------------

На рабочей станции необходимо сделать откат настройки клиента **FreeIPA**, чтобы привести содержание общих конфигурационных файлов, включая настройки **PAM** стека, в исходное состояние. Для этого нужно войти в систему под учетной записью локального администратора, например, **localadmin** и выполнить команду:

.. code-block:: bash
    
    sudo astra-freeipa-client -U

Результат выполнения команды:

.. code-block:: bash

    Unenrolling client from IPA server
    ...
    Client uninstall complete.

Далее необходимо удалить пакеты приложений, указав явно **aldpro**, **freeipa**, **sssd** и **krb5**. Все другие пакеты будут удалены через зависимости.

.. code-block:: bash

    sudo apt purge 'aldpro*' 'freeipa*' 'sssd*' 'krb5*'
    sudo apt autoremove --purge

Установить сетевые настройки с учетом нового сценария использования рабочей станции.

Проверить список профилей в домашней папке:

.. code-block:: bash
    
    cd /home/ && ls

В результате отображаются профили нескольких пользователей, один из которых локальный администратор, например, **localadmin**, который был указан при установке:

.. code-block:: bash
    
    admin localadmin ivani ppetr

Теперь нужно удалить домашние директории доменных пользователей и оставшиеся в системе артефакты.

.. code-block:: bash
    
    sudo rm -rf /home/admin

Удалить каталоги клиентских приложений подсистем **ALD Pro**:

.. code-block:: bash

    sudo rm -rf /var/lib/sss/pubconf/krb5.include.d/
    sudo rm -rf /etc/krb5.conf.d/
    sudo rm -rf /var/lib/sss/
    sudo rm -rf /etc/sssd/
    sudo rm -rf /opt/rbta/aldpro/
    sudo rm -rf /etc/syslog-ng/aldpro/
    sudo rm -rf /srv/aldpro-salt/minion.d/
    sudo rm -rf /srv/aldpro-salt/config/
    sudo rm -rf /var/lib/certmonger/

Для удаления корневого сертификата домена из файла ``/etc/ssl/certs/ca-certificates.crt`` следует вызвать утилиту ``update-ca-certificates``:

.. code-block:: bash
    
    sudo update-ca-certificates

В завершение действий над выводимым компьютером необходимо вернуть компьютеру исходное имя хоста, например, **astra**, и перезагрузить его:

.. code-block:: bash

    sudo hostnamectl set-hostname astra
    sudo reboot

Действия на р/с под управлением Альт Рабочая станция 10.4 и Альт СП 10
----------------------------------------------------------------------------------

На рабочей станции сначала следует сделать откат настройки клиента **FreeIPA**, чтобы привести содержание общих конфигурационных файлов, включая настройки **PAM** стека, в исходное состояние. 

.. code-block:: bash

    sudo ipa-client-install --uninstall --unattended

При выполнении команды в системе происходят следующие действия:

* в службе каталога снимается отметка о том, что хост зарегистрирован в домене;

* ключи хоста удаляются из файла ``/etc/krb5.keytab``;

* содержимое конфигурационных файлов, например, ``/etc/krb5.conf``, ``/etc/ldap/ldap.conf`` приводится в исходное состояние;

* к имени файла конфигурации ``/etc/sssd/sssd.conf`` добавляется суффикс ``.deleted``.

Удалить пакеты приложений, указав явно **aldpro**, **freeipa**, **sssd**. Все другие пакеты будут удалены через зависимости.

.. code-block:: bash
    
    sudo apt-get remove -y --purge '^aldpro*' '^freeipa*' '^sssd*'
    sudo apt-get autoremove --purge

Удалить домашние директории доменных пользователей:

.. code-block:: bash
    
    sudo rm -rf /home/<логин_доменного_пользователя>

Удалить каталоги клиентских приложений подсистем **ALD Pro**:

.. code-block:: bash
    
    sudo rm -rf /var/lib/sss/pubconf/krb5.include.d/
    sudo rm -rf /etc/krb5.conf.d/
    sudo rm -rf /var/lib/sss/
    sudo rm -rf /etc/sssd/
    sudo rm -rf /opt/rbta/aldpro/
    sudo rm -rf /etc/syslog-ng/aldpro/
    sudo rm -rf /srv/aldpro-salt/
    sudo rm -rf /var/lib/certmonger/

Удалить репозиторий клиента **ALD Pro**:

.. code-block:: bash
    
    sudo rm -rf /etc/apt/sources.list.d/aldpro.list
    sudo rm -rf /etc/apt/preferences.d/aldpro-client
    sudo apt-get update

Для удаления корневого сертификата домена следует вызвать утилиту ``update-ca-trust``:

.. code-block:: bash
    
    sudo update-ca-trust

В завершение действий над выводимым ПК можно установить сетевые настройки и имя хоста с учетом нового сценария использования рабочей станции и перезагрузить его:

.. code-block:: bash
    
    sudo reboot

Действия на р/с под управлением РЕД ОС 7.3.5 и РЕД ОС 8
------------------------------------------------------------------------------

На рабочей станции сначала следует сделать откат настройки клиента **FreeIPA**, чтобы привести содержание общих конфигурационных файлов, включая настройки **PAM** стека, в исходное состояние. 

.. code-block:: bash

   sudo ipa-client-install --uninstall --unattended

.. attention::
    
   В результате выполнения команды появится сообщение об успешности вывода клиента из домена ``Client uninstall complete``, но также появится и сообщение об ошибке ``The ipa-client-install command failed``. В логе ``/var/log/ipaclient-uninstall.log`` при этом отобразится ошибка:
    
.. code-block:: bash
        
   2025-06-06T08:47:49Z ERROR Some installation state for domainname has not been restored, see /var/lib/ipa/sysrestore/sysrestore.state
    
Данная ошибка не критична и вызвана особенностями IPA-клиента в **РЕД ОС**. Чтобы она не возникала, можно предварительно удалить неиспользуемую секцию ``[domainname]`` из файла конфигурации для восстановления ``/var/lib/ipa-client/sysrestore/sysrestore.state``. Это можно сделать вручную или воспользоваться командой: 
    
.. code-block:: bash

   sudo sed -i '/\[domainname\]/,/enabled = False/ d' /var/lib/ipa-client/sysrestore/sysrestore.state

При выполнении команды в системе происходят следующие действия:

* в службе каталога снимается отметка о том, что хост зарегистрирован в домене;

* ключи хоста удаляются из файла ``/etc/krb5.keytab``;

* содержимое конфигурационных файлов, например, ``/etc/krb5.conf``, ``/etc/ldap/ldap.conf`` приводится в исходное состояние;

* к имени файла конфигурации ``/etc/sssd/sssd.conf`` добавляется суффикс ``.deleted``.

Удалить пакеты приложений, указав явно **aldpro**, **freeipa**, **sssd** и **krb5**. Все другие пакеты будут удалены через зависимости.

.. code-block:: bash

    sudo dnf remove --exclude=krb5-libs -y 'aldpro*' 'freeipa*' 'sssd*' 'krb5*'
    sudo dnf -y autoremove

Удалить домашние директории доменных пользователей.

.. code-block:: bash
    
    sudo ls -l /home
    sudo rm -rf /home/<логин_доменного_пользователя>

Удалить каталоги клиентских приложений подсистем **ALD Pro**:

.. code-block:: bash

    sudo rm -rf /var/lib/sss/pubconf/krb5.include.d/
    sudo rm -rf /etc/krb5.conf.d/
    sudo rm -rf /var/lib/sss/
    sudo rm -rf /etc/sssd/
    sudo rm -rf /opt/rbta/aldpro/
    sudo rm -rf /etc/syslog-ng/aldpro/
    sudo rm -rf /srv/aldpro-salt/
    sudo rm -rf /var/lib/certmonger/

Удалить репозиторий клиента **ALD Pro**:

.. code-block:: bash

    sudo rm -rf /etc/yum.repos.d/aldpro.repo
    sudo dnf makecache

Для удаления корневого сертификата домена следует вызвать утилиту ``update-ca-trust``:

.. code-block:: bash

    sudo update-ca-trust

В завершение действий над выводимым ПК можно установить сетевые настройки и имя хоста с учетом нового сценария использования рабочей станции и перезагрузить его:

.. code-block:: bash
    
    sudo reboot

.. _backup-controller-delete:

Действия на контроллере домена
------------------------------------------------------------------------------

На сервере **dc-1** нужно удалить **DNS**-записи хоста, а затем и сам хост.

.. code-block:: bash

    kinit admin
    ipa dnsrecord-del ald.company.lan. pc-1 --del-all

Результат удаления записей **DNS**:

.. code-block:: bash

    ---------------------
    Удалена запись "pc-1"
    ---------------------

Удалить выводимый компьютер из базы системы **FreeIPA**:

.. code-block:: bash

    ipa host-del pc-1.ald.company.lan

Результат удаления компьютера:

.. code-block:: bash

    ----------------------------------
    Удалён узел "pc-1.ald.company.lan"
    ----------------------------------